/*
 * @Author: 葛文杰
 * @Date: 2021/2/2 13:42
 * @Description: 公用变量
 */

/**
 * 是否删除值
 * @type {number}
 */
const IS_NOT_DELETE = 0; // 未删除
const IS_DELETE = 1; // 删除

/**
 * 是否启用
 */
const IS_NOT_ENABLE = 0; // 未启用
const IS_ENABLE = 1; // 启用

/**
 * 分页配置
 */
const DEFAULT_PAGE_NO = 1;
const DEFAULT_PAGE_SIZE = 10;

/**
 * 基础的查询条件
 */
const BASE_WHERE_CONDITION_SQL = 'where 1 = 1';

/**
 * @see https://www.cnblogs.com/shuilangyizu/p/8036620.html
 * 数据库时间转换格式
 */
const SQL_DATA_FORMAT = '%Y-%m-%d %H:%m:%s';

/**
 * 枚举数据id => info map数据
 * @type {string}
 */
const ENUMERATION_ID_INFO_MAP = new Map();

const ENUMERATION_ID_FIELD = 'id'; // 枚举名称字段
const ENUMERATION_NAME_FIELD = 'enumerationName'; // 枚举名称字段
const ENUMERATION_VALUE_FIELD = 'enumerationValue';  // 枚举值字段

/**
 * 枚举数据 所有key
 * @type {string}
 */
const DATA_SOURCE_PULL_TYPE = 'dataSourcePullType'; // 数据源获取方式
const DATA_SOURCE_STATUS = 'dataSourceStatus'; // 数据源状态
const FIELD_USE_TYPE = 'fieldUseType'; // 字段使用类型
const FIELD_TYPE = 'fieldType'; // 字段类型
const SORT_TYPE = 'sortType'; // 排序类型
const COMPARE_SYMBOL = 'compareSymbol'; // 运算符号

/**
 * 枚举数据类型数组
 */
const ENUMERATION_TYPE_ARRAY = [
    { value: DATA_SOURCE_STATUS, label: '数据源状态' },
    { value: DATA_SOURCE_PULL_TYPE, label: '数据源获取方式' },
    { value: FIELD_USE_TYPE, label: '字段使用类型' },
    { value: FIELD_TYPE, label: '字段类型' },
    { value: SORT_TYPE, label: '排序类型' },
    { value: COMPARE_SYMBOL, label: '运算符号' },
];

module.exports = {
    IS_NOT_DELETE,
    IS_DELETE,
    IS_NOT_ENABLE,
    IS_ENABLE,
    DEFAULT_PAGE_NO,
    DEFAULT_PAGE_SIZE,
    BASE_WHERE_CONDITION_SQL,
    SQL_DATA_FORMAT,
    ENUMERATION_ID_INFO_MAP,
    ENUMERATION_TYPE_ARRAY,
    ENUMERATION_ID_FIELD,
    ENUMERATION_NAME_FIELD,
    ENUMERATION_VALUE_FIELD,
    DATA_SOURCE_PULL_TYPE,
    DATA_SOURCE_STATUS,
    FIELD_USE_TYPE,
    FIELD_TYPE,
    SORT_TYPE,
    COMPARE_SYMBOL
};
